Computer virtualization is a technique that involves encapsulating a physical computing machine platform into a virtual machine that is executed under the control of virtualization software on a hardware computing platform. Virtualization software enables multiple virtual machines (VMs) to be run on a single hardware computing platform, and can manage the allocation of computing resources to each virtual machine. A software module referred to as a hypervisor manages execution of virtual machines on a physical computing machine platform.
High availability software provides features that detect failure of a computer system executing VMs and perform a failover operation in response that restarts virtual machines on another server. In some virtualization environments, virtual machines have the capability to execute “nested hypervisors,” which are hypervisors that run on the virtualized hardware environment of a virtual machine. In the past, high availability has generally not been available for virtual machines run by nested hypervisors.